import axios from 'axios'
import store from '@/store'
import router from '@/router'
const service = axios.create({
    baseURL: 'http://big-event-vue-api-t.itheima.net',
    timeout: 5000
})
// 请求拦截器
service.interceptors.request.use(function (config) {
    console.log('所有正常请求在到达服务器之前都会经过这里', config);
    // 在发送请求之前做些什么
    // 获取token
    const token = store.state.user.token
    console.log('请求拦截到了token', token);
    // 加上请求头
    config.headers.Authorization = token
    return config;
}, function (error) {
    console.log('所有错误请求在到达服务器之前都会经过这里', error);

    // 对请求错误做些什么
    return Promise.reject(error);
});

// 添加响应拦截器
service.interceptors.response.use(function (response) {
    console.log('所有正常响应,在到达浏览器之前都会经过这里 response', response);
    // 对响应数据做点什么


    return response.data;  //解构

}, function (error) {
    console.log('所有错误响应,在到达浏览器之前都会经过这里', error);

    if (error.response.status === 401) {
        // 无效的 token
        // 把 Vuex 中的 token 重置为空，并跳转到登录页面
        store.commit('user/delToken')
        router.push('/login')
    }
    // 对响应错误做点什么
    return Promise.reject(error);
});


export default service